Genereer Formulier W-9 PDF's met Power Automate en Smartsheet
Door DocuGenerate
24 Juli 2026
Introductie
Formulier W-9, “Request for Taxpayer Identification Number and Certification”, is een IRS-formulier dat bedrijven in de Verenigde Staten gebruiken om de wettelijke naam, het adres en het fiscaal identificatienummer van leveranciers, freelancers en zelfstandige contractanten te verzamelen voordat ze hen betalen. De op een W-9 vermelde informatie wordt later gebruikt om 1099-formulieren op te stellen bij de belastingaangifte, waardoor correcte en consistent opgemaakte W-9-gegevens een belangrijk onderdeel zijn van elk onboardingproces voor leveranciers. Bedrijven die voortdurend nieuwe contractanten aannemen, beheren deze gegevens vaak in een spreadsheet of een tool zoals Smartsheet, wat er een natuurlijke kandidaat voor automatisering van maakt.
In deze tutorial bouwen we een Power Automate-flow die een Smartsheet-blad in de gaten houdt voor nieuwe rijen en automatisch een ingevulde W-9-PDF genereert met DocuGenerate. Telkens wanneer een nieuw leveranciersrecord aan het blad wordt toegevoegd, of het nu door een teamlid rechtstreeks wordt ingevoerd of via een import vanuit een ander systeem, voegt de flow de gegevens van die rij samen met een Word-sjabloon en slaat de definitieve PDF op in Azure File Storage. Hetzelfde patroon geldt voor elk document dat automatisch uit spreadsheetgegevens moet worden gegenereerd, maar een belastingformulier is een goede illustratie omdat het een mix van particuliere en zakelijke indieners, voorwaardelijke velden en een lay-out omvat die precies moet blijven.
De DocuGenerate-Sjabloon Voorbereiden
De eerste stap is het maken van een Word-sjabloon in DocuGenerate die de officiële W-9-lay-out nabootst. We zijn uitgegaan van het IRS-formulier W-9 en hebben elk invulbaar veld vervangen door een merge-tag, waarna we het als een nieuw sjabloon met de naam Form W-9hebben geüpload.
Het sjabloon bevat 17 merge-tags: firstName, lastName, businessName, taxClassification, exemptPayeeCode, fatcaCode, streetAddress, requesterName, requesterAddress, city, state, zipCode, accountNumber, ssn, ein, signature en signatureDate. De meeste hiervan komen rechtstreeks overeen met een gelabeld vak op het formulier. taxClassification komt overeen met de regel “Other” in de sectie over de federale belastingclassificatie en bevat een korte omschrijving zoals “C Corporation” of “Trust/estate”, terwijl ssn en ein de twee vakken in Part I invullen, afhankelijk van of de indiener een particulier of een bedrijf is. U kunt het in deze tutorial gebruikte Word-sjabloon downloaden en aanpassen aan uw eigen lay-out.
De Gegevensbron in Smartsheet Instellen
Met het sjabloon op zijn plaats is de volgende stap het voorbereiden van het blad dat als trigger voor onze flow zal dienen. Klik in Smartsheet op Create > Sheet > Table om een nieuw blad te maken en hernoem het naar Form W-9. In plaats van voorbeeldrijen handmatig in te typen, importeren we ze uit een Excel-bestand door het bladmenu te openen en Import te selecteren. Houd er rekening mee dat importeren alle bestaande gegevens in het blad vervangt door de gegevens uit het bronbestand.
U kunt het voor deze import gebruikte voorbeeld-Excelbestand downloaden. Het bevat 10 rijen die overeenkomen met de 18 kolommen die aan de merge-tags in het sjabloon worden gekoppeld: een kolom Record ID (REC-001 tot REC-010), gevolgd door één kolom per veld van het formulier. De gegevens mengen particulieren en bedrijven om de verschillende vertakkingen van het formulier te doorlopen: zes particulieren of eenmanszaken met een ingevulde SSN en geen EIN, en vier entiteiten (een LLC, een C Corp, een trust/nalatenschap en een partnership) met een ingevulde EIN en geen SSN. Eén rij heeft ook de kolommen Exempt Payee Code en FATCA Code ingevuld, aangezien die alleen in specifieke gevallen van toepassing zijn.
De Power Automate-Flow Maken
Met het sjabloon en de gegevensbron gereed, kunnen we de flow zelf bouwen. Klik in Power Automate op New flow > Automated cloud flow. Geef de flow in het dialoogvenster Build an automated cloud flow een naam zoals Form W-9, zoek naar “Smartsheet” in de lijst met triggers, en selecteer When a new row is created.
De flow die we bouwen bestaat uit drie stappen: een Smartsheet-trigger die afgaat wanneer een rij wordt toegevoegd, een DocuGenerate-actie die de PDF genereert, en een Azure File Storage-actie die deze opslaat. Laten we elk van deze stappen om beurten configureren.
De Smartsheet-Trigger Configureren
De trigger When a new row is created vereist een verbinding met uw Smartsheet-account, waartoe Power Automate u zal vragen bij het eerste gebruik. Stel na het verbinden de parameter Sheet Id in op het eerder gemaakte blad Form W-9.
De Generate Document-Actie Toevoegen
Klik vervolgens op de knop + onder de trigger en zoek naar “DocuGenerate” om de lijst met beschikbare acties te zien.
Selecteer Generate Document. De eerste keer dat u een DocuGenerate-actie in uw omgeving gebruikt, wordt u gevraagd om een verbinding te maken met uw DocuGenerate-API-sleutel. Stel na het verbinden het veld Template in op het in DocuGenerate gemaakte sjabloon Form W-9.
Voor het veld Data hebben we een JSON-object nodig met de waarden voor alle 17 merge-tags. De Smartsheet-trigger stelt de cellen van de rij niet beschikbaar op kolomnaam, alleen als array, dus elke waarde moet worden aangeduid via de numerieke index. Op basis van de volgorde van de kolommen tijdens de import ziet de koppeling er als volgt uit: kolom 0 is Record ID, kolom 1 is SSN, kolom 2 is First Name, kolom 3 is Last Name, enzovoort tot kolom 17, wat Signature Date is. We hebben de JSON opgebouwd met de expressies concat en json:
De ?-tekens zijn null-conditionele operatoren: triggerBody()?.cells?[2]?.value leest de eigenschap value van de cel op index 2, en geeft null terug in plaats van een fout te genereren zodra cells of die specifieke cel ontbreekt. Dit is hier belangrijk omdat verschillende kolommen, zoals businessName of ssn, in veel rijen opzettelijk leeg zijn. De buitenste functie concat voegt al deze waarden samen tot één JSON-tekenreeks, en json() zet die tekenreeks om in het object dat het veld Data verwacht.
Voor het veld Name hebben we een expressie gebruikt die controleert of de kolom Business Name (index 4) is ingevuld en op basis daarvan het juiste naampatroon kiest, met dezelfde indexkoppeling als hierboven:
Dit levert een naam op zoals “Form W-9 John Smith” voor een particuliere indiener, of “Form W-9 Bluepeak Software LLC” voor een zakelijke indiener. Laat het veld Format ten slotte op de standaardwaarde .pdf staan.
Het Document Opslaan in Azure File Storage
Zodra het document is gegenereerd, zijn er veel manieren om het af te leveren: per e-mail versturen, toevoegen aan SharePoint of OneDrive, uploaden naar een S3-bucket, enzovoort. Voor deze tutorial slaan we het op in Azure File Storage. Klik op de knop + onder de actie Generate Document, zoek naar “Create file”, en selecteer de actie van Azure File Storage.
Maak een verbinding door een Connection name, uw Azure Storage account name or file endpoint en uw Azure Storage Account Access Key op te geven, beide beschikbaar vanuit uw opslagaccount in de Azure-portal.
Configureer met de verbinding op zijn plaats de actie Create file:
Folder path: /form-w-9, de doelmap in het opslagaccount.
File name: outputs('Generate_Document')?['body/filename'], de bestandsnaam van de gegenereerde PDF.
File content: outputs('Generate_Document')?['body/document_uri'], de URL van de gegenereerde PDF.
De Flow Testen
Om de flow te testen, klikt u op Test op de flowpagina, selecteert u Manually, en klikt u vervolgens opnieuw op Test. Power Automate toont een bericht waarin u wordt gevraagd een rij toe te voegen aan het geselecteerde blad om de uitvoering te activeren.
Voeg een nieuwe rij toe aan het blad Form W-9 in Smartsheet met een nieuwe set leveranciersgegevens. Zodra de flow is uitgevoerd, verschijnt het gegenereerde document in het paneel Documents van het sjabloon Form W-9 in DocuGenerate, en wordt de PDF opgeslagen in de opgegeven map in Azure File Storage. Hieronder ziet u een voorbeeld van de gegenereerde PDF.
Conclusie
Deze tutorial doorliep het volledige traject van een rij in Smartsheet tot een indienklare W-9-PDF, met behulp van een Power Automate-flow zonder aangepaste code. De trigger detecteert nieuwe leveranciersrecords zodra ze worden ingevoerd, de actie Generate Document vult de officiële formulierlay-out met de gegevens van die rij, en de actie Create file levert het resultaat automatisch af aan Azure File Storage.
Hetzelfde patroon in drie stappen (trigger, genereren, afleveren) werkt voor elk terugkerend document dat uw team produceert vanuit spreadsheet- of tabelgegevens, of het nu gaat om onboardingdocumenten, facturen of compliance-formulieren. Omdat de DocuGenerate-acties beschikbaar zijn in het volledige Power Platform, kunt u deze flow net zo gemakkelijk activeren vanuit een Power Apps-formulier of een SharePoint-lijst in plaats van een Smartsheet-rij, met behoud van dezelfde configuratie van de actie Generate Document.
Bronnen
Het in deze tutorial gebruikte Word-sjabloon Form W-9.
Mappen brengen een vertrouwd, hiërarchisch organisatiemodel naar uw DocuGenerate-sjablonen, waardoor het eenvoudiger wordt om verwante sjablonen te groeperen naarmate uw bibliotheek groeit. Ontdek hoe u mappen maakt en beheert om uw werkruimte georganiseerd te houden.
Het bepalen van hoe datums worden weergegeven in gegenereerde documenten is een van de meest voorkomende opmaakuitdagingen, vooral bij het produceren van documenten voor verschillende regio's. Dit artikel behandelt twee verschillende benaderingen, met voorbeelden voor zowel Amerikaanse als Europese datumformaten.
Mail merge bestaat al decennialang, en Microsoft Word biedt het nog steeds als ingebouwde functie. Maar hoe verhoudt dit zich tot een speciaal platform voor documentgeneratie zoals DocuGenerate? Ontdek het in deze vergelijking naast elkaar van beide oplossingen.